package com.sky.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sky.anotion.StatusConvert;
import com.sky.anotion.ValidId;
import com.sky.anotion.validator.UpdateGroup;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Accessors(chain = true)
public class Competition implements Serializable {
    private static final long serialVersionUID = 1L;
    /** 竞赛id */
    @ValidId(groups = {UpdateGroup.class})
    private String id;
    /** 竞赛名称 */
    private String name;
    /** 主办单位名称 */
    private String conductUnit;
    /** 承办单位名称 */
    private String organizer;
    /**是否有特等奖*/
    private Integer special;
    /**
     * 竞赛范围
     */
    private String scope;
    /**
     * 竞赛等级
     */
    private String level;
    /**
     * 竞赛类型
     */
    private String type;
    /**
     * 交通工具
     */
    private String traffic;
    /**
     * 竞赛形式
     */
    private String shape;
    /**
     * 竞赛人数
     */
    private Long number;
    /**
     * 竞赛预算
     */
    private String budget;
    /**
     * 竞赛负责人
     */
    private String contact;
    /**
     * 参赛地址
     */
    private String address;
    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;
    /** 竞赛结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;
    /**
     * 上届经费使用情况
     */
    private String cost;
    /**
     * 竞赛教师信息
     */
    private String teacher;
    /**
     * 竞赛计划
     */
    private String plan;
    /**
     * 竞赛负责人联系电话
     */
    private String phone;
    /**
     * 指导老师id
     */
    private String instructorId;
    /**备注信息*/
    private String desc;
}
